import req, {hostApi} from '@/utils/req/axios'
import {generateRandomString} from '@/utils/common/fns/string'
import urls from '@/utils/constants/urls'

export async function getFile(fileId) {
  const res = await req.get(urls.cos.getFile, {fileId})
  return res.data
}

export async function uploadFile({
                                   file, businessDir,
                                 }) {
  // const taskId = generateRandomString()
  // const eventSource = new EventSource(`${hostApi}/cos/uploadFileProgress?taskId=${taskId}`)
  //
  // eventSource.onmessage = (e) => {
  //   try {
  //     const data = JSON.parse(e.data)
  //     console.log('收到消息:', data)
  //
  //     if (data.isInit) {
  //       console.log('SSE连接已建立')
  //     } else if (data.progressData) {
  //       console.log(`上传进度: ${(data.progressData.percent * 100).toFixed(2)}%`)
  //       // 更新进度条 UI
  //     } else if (data.isFinish) {
  //       console.log('上传完成')
  //       eventSource.close()
  //     }
  //   } catch (error) {
  //     console.error('解析SSE消息出错:', error)
  //   }
  // }
  // // 监听错误事件
  // eventSource.onerror = (e) => {
  //   console.error('SSE连接错误:', e)
  //   eventSource.close()
  // }
// 监听进度更新
//   eventSource.addEventListener('progress', (e) => {
//     console.log('progress。。。', e)
//     const data = JSON.parse(e.data)
//     if (data.taskId === taskId) {
//       console.log(`上传进度: ${data.percent.toFixed(2)}%`)
//       // 更新进度条 UI（如 Vue 组件）
//       // this.progress = data.percent;
//     }
//   })
//
// // 监听完成/错误
//   eventSource.addEventListener('complete', (e) => {
//     console.log('complete。。。', e)
//     const data = JSON.parse(e.data)
//     console.log('上传成功:', data.url)
//     // eventSource.close()
//   })

  // eventSource.addEventListener('error', (e) => {
  //   console.log('error。。。', e)
  //   if (typeof e.data === 'undefined') {
  //     console.log('上传失败...', e)
  //     eventSource.close()
  //   } else {
  //     console.log('上传失败2...', e)
  //   }
  // })
  const formData = new FormData()
  formData.append('file', file)
  formData.append('businessDir', businessDir || '/fuybooo/test')
  const res = await req.post(urls.cos.uploadFile, formData, {
    headers: {'Content-Type': 'multipart/form-data'},
    _isReturnOrigin: true,
  })
  if (res.errorCode === 0) {
    return res.data.fileId
  }
  return ''
}
